﻿Imports System.Data.Common

Public Class Dtraslado
    Public NUM_TRASLADO, FILA, COD_BD_PROD_1, COD_BD_PROD_2 As String
    Public EXISTE_1, EXISTE_2, CANTIDAD_1, CANTIDAD_2 As Decimal

    Public Shared Function ConsultarAll() As DataTable
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select * from DTRASLADO ORDER BY NUM_TRASLADO"
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If
        Return dtConsulta
    End Function

    Public Shared Function nuevo(ByRef dTras As Dtraslado) As Resultado
        Dim conexion As New ConexionBD.ConexionBD()
        Dim oResultado As New Resultado
        Dim i As Integer = 1
        oResultado.ExisteError = conexion.Conectar()
        If oResultado.ExisteError Then
            Dim sentencia As String
            Dim ok As Boolean = False

            sentencia = "SP_DTRASLADO_I"

            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, dTras.NUM_TRASLADO, "NUM_TRASLADO"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, i.ToString, "FILA"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, dTras.COD_BD_PROD_1, "COD_BD_PROD_1"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, dTras.COD_BD_PROD_2, "COD_BD_PROD_2"))

            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, dTras.EXISTE_1, "EXISTE_1"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, dTras.EXISTE_2, "EXISTE_2"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, dTras.CANTIDAD_1, "CANTIDAD_1"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, dTras.CANTIDAD_2, "CANTIDAD_2"))

            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamOutChar(conexion, "", "P_ERROR"))
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamOutString(conexion, "", "P_MENSAJE"))

            ok = conexion.EjecutarProcedimiento(sentencia)
            oResultado.ExisteError = conexion.ExisteError
            oResultado.Mensaje = conexion.mensaje

            conexion.Desconectar()
        End If
        Return oResultado
    End Function


    Public Shared Function nuevo(ByRef dtTraslado As DataTable, ByRef NUM_TRASLADO As String) As Resultado
        Dim conexion As New ConexionBD.ConexionBD()
        Dim oResultado As New Resultado
        Dim i As Integer = 1
        oResultado.ExisteError = conexion.Conectar()
        If oResultado.ExisteError Then
            Dim sentencia As String
            Dim ok As Boolean = False

            sentencia = "SP_DTRASLADO_I"

            For Each rProd As DataRow In dtTraslado.Rows

                conexion.ParametroEntrada = New List(Of DbParameter)
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, NUM_TRASLADO, "NUM_TRASLADO"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, i.ToString, "FILA"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, rProd("COD_BD_PROD_1"), "COD_BD_PROD_1"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, rProd("COD_BD_PROD_2"), "COD_BD_PROD_2"))

                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, CDec(rProd("EXISTE_1")), "EXISTE_1"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, CDec(rProd("EXISTE_2")), "EXISTE_2"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, CDec(rProd("CANTIDAD1")), "CANTIDAD_1"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInDecimal(conexion, CDec(rProd("CANTIDAD2")), "CANTIDAD_2"))

                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamOutChar(conexion, "", "P_ERROR"))
                conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamOutString(conexion, "", "P_MENSAJE"))

                ok = conexion.EjecutarProcedimiento(sentencia)
                oResultado.ExisteError = conexion.ExisteError
                oResultado.Mensaje = conexion.mensaje

                i += 1
            Next

            conexion.Desconectar()
        End If
        Return oResultado
    End Function

    Public Shared Function ConsxNumTraslado(ByRef dtras As GBDZafiro.Dtraslado) As DataTable
        Dim conexion As New ConexionBD.ConexionBD()
        Dim dtConsulta As New DataTable
        If conexion.Conectar() Then
            Dim sentencia As String
            sentencia = "select * from DTRASLADO where NUM_TRASLADO=@NUM_TRASLADO"
            conexion.ParametroEntrada = New List(Of DbParameter)
            conexion.ParametroEntrada.Add(ConexionBD.ConexionBD.ParamInString(conexion, _
                                                                              dtras.NUM_TRASLADO, "NUM_TRASLADO"))
            dtConsulta = conexion.Consulta(sentencia)
            conexion.Desconectar()
        End If
        Return dtConsulta
    End Function

End Class
